To the first one any pretty printing command line utility will work, I really 
like jq (https://stedolan.github.io/jq/)

So with my example just piping to jq with no arguments gives formatted json 
which then could be sent to file:

$ curl http://localhost:5984/koi/_design/ddoc -s | jq .
{
  "_id": "_design/ddoc",
  "_rev": "2-969b8f6ac9911b15c7884d9d5d527093",
  "views": {
    "name": {
      "map": "function(doc) { emit(doc.name, doc.age); }"
    }
  }
}
$ curl http://localhost:5984/koi/_design/ddoc -s | jq . > ddoc2.json

In reality jq is much more powerful tool, so check it out if you haven’t seen 
it before.


For the second one, if I understand the question correctly, no, a design 
document doesn’t need to be no-linebreaks json. As long as its values are 
strings and evaluates to a proper javascript it could be formatted as 
necessary, json and javascript function parts alike, i.e. the following is 
perfectly valid design document:

{
  "_id": "_design/ddoc",
  "_rev": "2-969b8f6ac9911b15c7884d9d5d527093",
  "views": {
    "name": {
      "map": "function(doc) {
         var name = doc.name;
         var age = doc.age;
         emit(name, age); 
      }"
    }
  }
}



Regards,
Eric


> On Aug 14, 2017, at 11:50, Ronny Berndt <ro...@kioskkinder.com> wrote:
> 
> Hi Eric,
> 
> thank you for your answer.
> 
> My problem is, if you get the design doc, you get one line of json (no 
> linebreaks, etc…).
> How to reformat to 
> 1. a doc with linebreaks to easily edit the file
> 2. reformat two one line (or isn’T it necessary for the upload)?
> 
> all with command line tools (or automatic after downloading/uploading)?
> 
> Regards, Ronny
> 
>> Am 14.08.2017 um 16:13 schrieb Eiri <e...@eiri.ca>:
>> 
>> Hi Ronny,
>> 
>> For me “a-ha” moment was to realise that design document is just an ordinary 
>> CouchDB document, so it can be created and updated with any http client: 
>> curl, httpie, whatnot. I’ve writed up a gist with basic demo on using curl 
>> for that: https://gist.github.com/eiri/70e3a44421ade7f01d4394ef08f80091
>> 
>> Key moments to notice there that while updating design document it must have 
>> revision and that value of “map” is a string, but it need to be a proper 
>> javascript, as it’ll be evaluated as such.
>> 
>> So yes, it is easily possible to manage design documents without third party 
>> tools.
>> 
>> Sorry, I don’t know the answer on your third question, I’m more of a command 
>> line guy.
>> 
>> 
>> Regards,
>> Eric 
>> 
>> 
>>> On Aug 11, 2017, at 15:44, Ronny Berndt <ro...@kioskkinder.com> wrote:
>>> 
>>> Hi,
>>> 
>>> I have some questions regarding the edit of design documents:
>>> 
>>> 
>>> 1. What is the best way to edit design documents locally and upload it to 
>>> couchdb?
>>> 2. Is it easily possible without third party tools like couchapp or 
>>> couchdb-bootstrap?
>>> 3. How can I add a list function in Fauxton?
>>> 
>>> Cheers, Ronny
>> 
> 

Reply via email to