cbt- cli blog tool

1

cbt- cli blog tool

offline
  • Pridružio: 20 Feb 2005
  • Poruke: 4505
  • Gde živiš: planeta Zemlja

Pre godinu dana (manje-vise) sam naleteo na jedan mali alat za pisanje bloga u bashu pod imenom bashblogger (verzija 0.2). Mnogo mi je bio interesantan ali je imao mnogo mana (verzija 0.2). Nije imao dobar sistem za arhiviranje, html templejt je bio katastrofa (crna pozadina, bela slova sa mnogo sive boje... uzas za oci), nije bilo naprednijih funkcija i sl. Sistem rada je, sa druge strane, bio odlican. Imate 5 text fajlova i sve se radi preko njih. Upotrebljena je cat komanda za pravljenjeglavnog teksta i eto. Nesto u ovom fazonu:

if [ -f "./db/tekstovi/4.txt" ]; then mv "./db/tekstovi/4.txt" "./db/tekstovi/5.txt"; fi
if [ -f "./db/tekstovi/3.txt" ]; then mv "./db/tekstovi/3.txt" "./db/tekstovi/4.txt"; fi
if [ -f "./db/tekstovi/2.txt" ]; then mv "./db/tekstovi/2.txt" "./db/tekstovi/3.txt"; fi
if [ -f "./db/tekstovi/1.txt" ]; then mv "./db/tekstovi/1.txt" "./db/tekstovi/2.txt"; fi

cat ./db/tekstovi/1-title.txt ./db/tekstovi/2-title.txt ./db/tekstovi/3-title.txt ./db/tekstovi/4-title.txt ./db/tekstovi/5-title.txt > index.html


Postoji i noviji bashblogger (0.3.x) ali ja ga ne volim zato sto je mnogo komplikovan (bezveze je ali ima mocniji sistem arhiviranja pa je upotrebljiv i to prilicno).

Meni se mnogo svideo nacin na koji je autor bashbloggera 0.2 napravio sve to pa sam ja lepo editovao bashblogger 0.2. Ja sam gledao kako da to poboljsam pa sam razmisljao u sledecem pravcu:
- moram da sredim arhivu (po defaultu je arhiva bila jedan html sa svim tekstovima sto je glupo. Posle 5000 clanaka bi ta strana bila 10mb Smile)
- dodati feedove ili nesto za brzo pracenje statusa tekstova
- poboljsati vizuelni dozivljaj samog bloga (ikonice css i sl.)
Sve ovo je bilo nepohodno uraditi ali zadrzati jednostavnost. Verujte mi da sam dosta razmisljao o tome kako da ovo poboljsam (inace je dobra stvar pisati skripte zato sto vam poboljsavaju razmisljanje no da ne idem sa teme).

I tako sam ja editovao glavnu skritpu sve dok nisam napravio 19 kb koda "iz glave" (za glavnu skriptu) i 25 kb propratnih fajlova (za pravljenje html templejtova, provere za fajlovima i sl.) i dok nisam sve to ukombinovao sa idejom za arhiviranje tekstova koju sam gore naveo. Sam kod je jako ruzno pisan i nije citljiv "odmah" no ajd. Danas (posle 6 meseci aktivnog poboljsanja (mada vrlo neredovnog)) skripta radi bez problema. Dodao sam mnoge stvari poput RSS-a (2.0) i Atom-a (1.0), permalinkova (za svaki tekst)... Pise to u README fajlu u arhivi.
Jedino mi fali testiranje ftp opcije (bilo je tu malih promena pa...). Evo i nekih slika bloga koji koristim (trenutno je offline zato sto mucim muku sa prostorom na netu) koji mi je "igraliste" za testiranje koda koji dodajem i sl.







Mislim da lici na nesto (vizuelno je dopadljivo sto je bitno za jedan blog). Moze se koristiti u vise svrha: nekakav pc dnevnik (ko voli da vodi dnevnike), blog (offline sa uploadom ili (mnogo bolje) online tako sto cete da prebacite kompletnu skriptu na net i da je pokrecete direktno na serveru Smile) ili za log nekakave aplikacije!?


## Instalacija
1. Raspakujte arhivu gde god zelite
2. Unutar arhive u lib/default-blog dira se nalazi fajl pod imenom cbt-rc koji treba da kopirate u ~/.cbt-rc
3. Podesite ~/.cbt-rc (DOBRO gledajte da podesite ovaj fajl buduci da on sadrzi kompletne informacije o blogu i svim opcijama). Ne morate da kreirate direktorijume rucno niti da se zamlacujete sa dodatnim kreiranjem fajlova za cbt. Sve ce samo biti kreirano stoga je bitno da samo dobro podesite putanje i opcije u ~/.cbt-rc
4. Pokrenite cbt skriptu (samo je pokrenite bez dodatnih opcija). Ovako ce svi fajlovi biti iskopirani na krajnju lokaciju i sve strane ce biti generisane.

PAZNJA: U kime (unutar ~/.cbt-rc) napisite vase ime. Nemojte koristiti ${USER} zato sto nece da radi skripta (ne znam zasto).


Elem evo linka pa ko zeli neka proba:
https://www.mycity.rs/must-login.png



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • bocke  Male
  • Moderator foruma
  • Glavni moderator Linux foruma
  • Veliki Pingvin
  • Guru
  • Pridružio: 16 Dec 2005
  • Poruke: 12485
  • Gde živiš: Južni pol

Sviđa mi se ovo. Smile Probaću pa javljam utiske. Wink

Btw, skoro sam tražio nešto slično. Postaviću uskoro par linkova ka sličnim alatima. Smile



offline
  • Pridružio: 20 Feb 2005
  • Poruke: 4505
  • Gde živiš: planeta Zemlja

btw moram da nalgasim da je RSS i Atom podrska (za full verzije tekstova). malo "vrljavo" odradjena buduci da fale neke stvari. Naime podrska je zasnovana samo na jednoj komandi:
cat ./main-text | tr -d "<>$/"
Ovo mozda i nije najbolja varijanata ali RSS i Atom feedovi ne parsiraju &lt; kao ni <bilo koji html tag>. Zato full fedovi ne izgledaju bas najbolje u feed readerima i u browserima.

offline
  • Pridružio: 20 Feb 2005
  • Poruke: 4505
  • Gde živiš: planeta Zemlja

Update (v0.3 rCool:
- dodata je opcija za biranje vremenskog perioda za sortiranje arhiva. Ovo sam ubacio da bi postojao standardni prikaz na svakom racunaru tj. da bi sortiranje davalo imena arhivama na isti nacin na svakom racunaru. U suprotnom korisnik je mogao da ubaci bilo kakvu komandu za datum (sto je bezveze). No za sve one koji ne vole ovo onda neka otvore skriptu i nadju
#datum check
if [ $dejt = "dnevna" ]; then datum="`date +%j-%y`"; fi
if [ $dejt = "mesecna" ]; then datum="`date +%b%y`"; fi
if [ $dejt = "godisnja" ]; then datum="`date +%Y`"; fi

To je kljuc za nacin arhiviranja.
- ispravljen bag koji je onemogucavao da se kopira Highlight dir u slucaju da isti ne postoji na blogu (cp nije ima opciju -R)
- dodata je mogucnost da se automatski proverava pravo stanje tekstova. Naime ako imate clanak-55.html (sto znaci da imate 55 clanaka) a u vasem counter.txt fajlu pise da imate 54 clanka, broj clanaka ce automatski biti promenjen u 55. Ova opcija je dostupna samo kroz cbt --rebuild opciju i kroz cbt --clanak opciju!
- popravljena je podrska za duge RSS i Atom feedove (sada ce se uklanjati <,>,&,; i / karakteri (pre nisu svi uklanjani (mislio sam da sam vec dodao tu opciju ali izgleda da nisam)))
- artwork je vracen na gnome-colors ikonice
- CSS je ispravljen (bilo je bagova sa widget linijom i sa ikonicom za arhivu (koja je sa 22x22 promenjena na 32x32)

Smile

link (ovaj link je i u prvom postu tako da je svuda ista verzija):

https://www.mycity.rs/must-login.png

offline
  • Pridružio: 20 Feb 2005
  • Poruke: 4505
  • Gde živiš: planeta Zemlja

Novine za danasnji upload:
-nova verzija: 0.3.1r0
-Highlight.js sam smanjio tako sto sam izbrisao sve fajlove koji su mi zauzimali prostor za dzabe. Licencom je propisano da moram da ostavim samo taj fajl (LICENSE) pa sam ja sa ~180kb skratio Highlight.js dir smanjio na ~130kb. Moze to jos da se smanjuje ali nisam hteo da brisem readme i jos neke fajlove. Pise vam u README.from-cbt-author sve Smile
-Dodate opcije za proveru jos nekih promenljivih u ~/.cbt-rc
-Dodate su provere za verziju bloga (ukoliko ne postoji info o verziji i o reviziji bice ubacen "cli clog tool 0.3 branch (r0)" tekst
-Dodata je opcija za odredjivanje broja tekstova na index strani (vise niste ograniceni na 5 tekstova). Ovo takodje znaci da je nacin dobijanja ukupnog broja tekstova postao mnogo dinamicniji (svuda su while petlje kako bi sve bilo automatizovanije Smile )
-Dodata je tango tema (background sam nasao negde na Deviantartu pre vise meseci). Gnome-colors je i dalje default a vi mozete i sami da menjate css i da dodajete nove ikonice buduci da gnome-colors.tar.bz2 sadrzi sve ikonice i default stil za slucaj da nesto zeznete.
-dodat je GPL header u skriptu (mislim da je dobro videti da je skripta "as is")
-dodati su "author", "robots" i "content" metatagovi u headere svih glavnih html strana
-ukoliko ne unesete naziv novog clanka, po defaultu, bice upotrebljen danasnji datum.
-dodate posebne ikonice za micro blog post i obican blog post. Sada je dovoljno lupiti ENTER kada vas pita za naslov teksta i tako pocinjete zapravo micro blog post. Takodje ce tagovi biti podeseni na default (microblog tekst) za mikro postove i vi necete moci da menjate to Wink
-dodate su posebne opcije za podesavanje broja clanaka u feedovima i na glavnoj strani
-doradjen je css stil (bilo je problema u "li" tagovima i u starijim arhivama)
-dodata je provera za praznim txt fajlovima. Ovo znaci da ce se na blogu naci svamo linkovi textova koji nisu veci od 0B pa tako necete na glavnoj strani da nailazite na linkove u kojima pise "ovde ce uskoro biti text..." (ovaj tekst je, inace, svuda uklonjen buduci da sada vise nema potrebe za njim)
-README je doradjen
-dodat je log (lakse mi je da pratim promene a i desava mi se nekad da ubacim nesto sto vec imam pa necu da se to ponavlja)
-novi spread button (76x15, png format sa gnome text editor ikonicom). Doduse nigde se ne koristi ali ko zeli moze to da doda...


Evo shootova Tango teme (zajedno sa prikazom jednog micro posta):








Kul zar ne?
Btw nova verzija nece raditi kako valja na blogovima kreiranim sa v0.3r8 (i starijim). Sa druge strane, malo rucnog editovanja i mozete da koristite staru arhivu i stare fajlove u novoj verziji. Evo i sta da uradite:
1. u db/tekstovi cete morati da preimenujete sledece fajlove:
counter.txt u counter.db
*-title.txt u *.title
2. U rss i atom direkotijumima cete morati da menjate sledece:
*-full.txt u *.dugi
*.txt u *.kratki

* predstavlja broj fajla (imate tacno 5 fajlova numerisane od 1 do 5 buduci da je cbt 0.3r8 imao ogranicenje po broju clanaka dok je u 0.3.1r0 to uklonjeno). Kada promenite imena ovih fajlova onda cete moci da nastavite da koristite staru bazu, staru arhivu i sl.

Link: https://www.mycity.rs/must-login.png

offline
  • Pridružio: 20 Feb 2005
  • Poruke: 4505
  • Gde živiš: planeta Zemlja

Log za 0.3.1r1:
-poboljsana provera kojom se potvrdjuje postojanje neophodnih programa na sistemu.
-ispravljen bag u pravljenju tekstova i njihovom brojanju (primer: u cbt-rc fajlu ste definisali 6 tekstova za naslovnu stranu medjutim posle nekog vremena ste smanjili taj broj na 5. Pre bi skripta ostavila i taj 6ti clanak i ne bi ga izbrisala a samim tim vi biste imali vise tekstova na glavnoj strani. Sada je to ispravljeno).
-dodat info o trenutnom broju tekstova nakon svakog rebuild-a ili kreiranja novog teksta Wink
-dodata je tango original tema (sadrzi tango ikonice iz default seta). Pored nje se nalazi i tango customized koja sadrzi custom ikonice u Tango stilu
-Tango original tema je sada default tema za cbt blog!

Link: https://www.mycity.rs/must-login.png

Uh... Sto mu konzola, ladno je bilo bas zeznutih bagova. Mozete misliti koliko sam bio srecan kada sam to i video (kompletna baza je zbrljana kod mene). Srecom imam backup Smile

offline
  • soxxx 
  • Prijatelj foruma
  • Pridružio: 25 Maj 2005
  • Poruke: 1482
  • Gde živiš: Gracanica, Kosovo

.::Wizard::. ::Btw nova verzija nece raditi kako valja na blogovima kreiranim sa v0.3r8 (i starijim). Sa druge strane, malo rucnog editovanja i mozete da koristite staru arhivu i stare fajlove u novoj verziji. Evo i sta da uradite:
Mogao si da olaksas onima koji vec koriste tvoj alat tako sto bi napravio "sitnu"skripticu koja bi olaksala prelazak na novu verziju, bez rucnog zamajavanja. Sta ako neko vec ima 50 tekstova? Smile Recimo nesto ovako:
#!/usr/pkg/bin/bash
#
# Skripta za konvertovanje potrebnih fajlova kreiranim sa cbt v0.3r8 (i starijim) na novu verziju.
# Svi originalni fajlovi ce pre konverzije biti kopirani u $bekap direktorijum

cbt_db="~/cbt/db"

bekap="/tmp/backup"
mkdir -p $bekap/{tekstovi,atom1.0,rss2.0}

# Funkcija koja ce raditi konvertovanje

f_zamena(){
for fajl in *$1
do
   cp $fajl $bekap/${PWD##*/}/${fajl}.backup || echo "Greska u kopiranju fajla $fajl." && exit 1
   mv $fajl ${fajl%$1}.$2
done
}

cd $cbt_db/tekstovi
cp counter.txt $bekap/${PWD##*/}/counter.txt.backup
mv counter.txt counter.db

f_zamena '-title.txt' 'title'
 
for dir in rss2.0 atom1.0
do
cd $cbt_db/feed/$dir
   f_zamena '-full.txt' 'dugi'
   f_zamena '.txt' 'kratki'
done

Vrlo je verovatno da sam negde pogresio jer nemam instaliran cbt ali sam pokusao da ti dam "hint" za ubuduce. Wink Srecno.

offline
  • Pridružio: 20 Feb 2005
  • Poruke: 4505
  • Gde živiš: planeta Zemlja

Totalno si u pravu. Gledam bas tvoju skriptu ali nisam bas skoncentrisan pa ni ne vidim da li je to to. Videcu da okacim ovih dana Mr. Green

offline
  • soxxx 
  • Prijatelj foruma
  • Pridružio: 25 Maj 2005
  • Poruke: 1482
  • Gde živiš: Gracanica, Kosovo

Skripta manjka "error checking" i neke ostale stvari, mozda i tacne putanje, ali verujem da ces to srediti. Wink Mozda si mogao da napravis nesto da se prilikom pokretanja cbt startuje skripta koja ce odmah konvertovati stvari za novu verziju. A mozda je to i nepotrebno komplikovanje stvari. Smile

offline
  • Pridružio: 20 Feb 2005
  • Poruke: 4505
  • Gde živiš: planeta Zemlja

Error checking? na sta konkretno mislis? Daj mi predloge posto ja nemam vise sta da dodam korisno u skriptu (nista meni previse korisno)...

Btw evo "quick and dirty" skripte (pisem je direktno iz glave pa ce biti jednostavna do koske):
#!/bin/bash

config_file="$HOME/.cbt-rc"

if [ ! -f "$config_file" ]; then
echo "GRESKA: Nije nadjen $config_file !"
exit 2
else
. $config_fajl
fi

if [ -z "$blogput" ]; then
echo "GRESKA: putanja do vaseg bloga nije podesena u $config_file"
exit 2
fi

cp -R $blogput/db $blogput/db-backup

#Promena imena fajlovima koji se koriste na index strani bloga
tekstovi="$blogput/db/tekstovi"
mv $tekstovi/1-title.txt $tekstovi/1.title
mv $tekstovi/2-title.txt $tekstovi/2.title
mv $tekstovi/3-title.txt $tekstovi/3.title
mv $tekstovi/4-title.txt $tekstovi/4.title
mv $tekstovi/5-title.txt $tekstovi/5.title

mv $tekstovi/counter.txt $tekstovi/counter.db


#rss feed change
rss="$blogput/db/feed/rss2.0"
mv $rss/1.txt $rss/1.kratki
mv $rss/2.txt $rss/2.kratki
mv $rss/3.txt $rss/3.kratki
mv $rss/4.txt $rss/4.kratki
mv $rss/5.txt $rss/5.kratki
#
mv $rss/1-full.txt $rss/1.dugi
mv $rss/2-full.txt $rss/2.dugi
mv $rss/3-full.txt $rss/3.dugi
mv $rss/4-full.txt $rss/4.dugi
mv $rss/5-full.txt $rss/5.dugi


#atom feed change
rss2="$blogput/db/feed/atom1.0"
mv $rss2/1.txt $rss2/1.kratki
mv $rss2/2.txt $rss2/2.kratki
mv $rss2/3.txt $rss2/3.kratki
mv $rss2/4.txt $rss2/4.kratki
mv $rss2/5.txt $rss2/5.kratki
#
mv $rss2/1-full.txt $rss2/1.dugi
mv $rss2/2-full.txt $rss2/2.dugi
mv $rss2/3-full.txt $rss2/3.dugi
mv $rss2/4-full.txt $rss2/4.dugi
mv $rss2/5-full.txt $rss2/5.dugi

exit 0


Ako se ne varam ovo je skripta za konvertovanje koja ce da obavi posao kako treba. Iovako cete imati smao fajlove od 1 do 5 pa... Malo je bedak zato sto ja vise nemam blog koji ima stara imena fajlova a nisam ni razmisljo o tome da pravim skriptu pa sam informacije o tome zapravo izbrisao u roku od 5 min.

Ko je trenutno na forumu
 

Ukupno su 765 korisnika na forumu :: 23 registrovanih, 4 sakrivenih i 738 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: amaterSRB, Bane san, bokisha253, cuculo, dozorni, dule10savic, Frunze, HrcAk47, Još malo pa deda, krkalon, Leonov, Luka1998, Mi lao shu, MikeHammer, nesa1962, nikoladim, Parker, ss10, stegonosa, stokssone, styg, vladetije, x9