Code Monkey home page Code Monkey logo

Comments (20)

piranha avatar piranha commented on July 23, 2024

So you want to truncate, but by words, right?

from gostatic.

 avatar commented on July 23, 2024

Yes. But I want to mantain the syntax of the markdown. If I truncate the raw code, then perhaps I get broken url: [foo instead of [foo](bla). Or broken emph, for example *foo instead of *foo*.

The same applies to html code.

from gostatic.

piranha avatar piranha commented on July 23, 2024

Yeah, I don't have any good solutions for this right now. That needs to be context-aware truncater...

from gostatic.

 avatar commented on July 23, 2024

But how wordpress themes do that? (see example above)

from gostatic.

piranha avatar piranha commented on July 23, 2024

I'm quite sure they do some fancy processing in there. Saying 'I don't have any good solutions` I mean that I don't really have time to sit and code an algorithm which will do that. I would gladly accept pull requests implementing that, though, since it sounds quite useful.

On the other hand, I looked at what people do, and they use simpler approach: you render your content, strip tags and then truncate. This way you won't have any markup truncated in a middle.

from gostatic.

 avatar commented on July 23, 2024

OK. Looking it up, I found this which is simple but very capable. There is a explaining post

from gostatic.

 avatar commented on July 23, 2024

The best way is to run

{{ truncate (pandoc --to plain .Raw) }}

but for this I need a new release version with #51 . I reopen this in waiting for that.

from gostatic.

piranha avatar piranha commented on July 23, 2024

I'd say best way would be to do {{ .Raw | markdown | strip_html | truncate 300 }}, this way you're not calling out to shell and have no external dependencies.

from gostatic.

krpors avatar krpors commented on July 23, 2024

Is it a viable option to introduce a template function, e.g. wordify or whatever which does that logic?

from gostatic.

piranha avatar piranha commented on July 23, 2024

Could be, but is markdown|strip|truncate not enough?

from gostatic.

krpors avatar krpors commented on July 23, 2024

Yeah I guess, but it doesn't break on words, but on characters, right?

from gostatic.

piranha avatar piranha commented on July 23, 2024

Right, function for breaking on words would be nice to have. Not sure wordify is good name for that though. :)

from gostatic.

 avatar commented on July 23, 2024

👍 perhaps excerpt is a good name

from gostatic.

piranha avatar piranha commented on July 23, 2024

Sounds good to me!

from gostatic.

 avatar commented on July 23, 2024

So, could anyone implement this? I have no this level to do that.

from gostatic.

krpors avatar krpors commented on July 23, 2024

It's in pull request #56 .

from gostatic.

 avatar commented on July 23, 2024

@krpors : fantastic. Is this tested against markdown syntax. I'm thinking about *foo* or [goo](google.com).

from gostatic.

krpors avatar krpors commented on July 23, 2024

@somenxavier Er, no. That requires a whole new level of parsing and things... I guess I misinterpreted your requirement. What the excerpt function does however, is truncating text based on spaces so it doesn't just break of in the middle of a word. If you now chain the function as follows:

{{ excerpt (.Raw | markdown | strip_html) 7 }}

It will produce simply text, maximum of 7 words. You can maybe play a bit without strip_html to see if you can produce correct results. If not, we may have to look for another solution.

from gostatic.

 avatar commented on July 23, 2024

@krpors I mean that if you write

Hi. This is a *test*. Do you see this [web](google.com)

the the excerpt could produce something like:

Hi, This is a test. Do you see this web

But your solution is good enough

from gostatic.

krpors avatar krpors commented on July 23, 2024

That is correct. The function chain will parse the markdown of your page, strip the html from it (so only text remains), and then it will generate an excerpt out of it.

from gostatic.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.